Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce dependency on getdkan/contracts (part 1) #4177

Draft
wants to merge 22 commits into
base: 2.x
Choose a base branch
from
Draft

Conversation

paul-m
Copy link
Contributor

@paul-m paul-m commented May 4, 2024

Partially fixes #3821

Old interface New interface
\Contracts\CountableInterface \Countable
\Contracts\HydratableInterface \Procrastinator\HydratableInterface
\Contracts\ParserInterface \CsvParser\Parser\ParserInterface

\Contracts\RetrieverInterface and \Contracts\StorerInterface remain in getdkan/contracts because there is no clear place to move them. They're needed within multiple libraries. Refactor this in a followup.

We also need to keep getdkan/contracts as a dependency in many places because some libraries use Contracts\Mock\Storage\Memory for tests. Refactor this in a followup.

Our changes to Drupal\common\Storage\Query... See the @todo which asks if we should just make a QueryInterface.

In order to make all these changes, we have to modify the following libraries, maybe in this order.

Each PR is a branch named no-contracts, some of which have interdependencies on each other. These PRs will need to be updated to require the release of each of these dependencies.

Package Comment PR
getdkan/contracts Deprecates all the interfaces changed above (for now). GetDKAN/contracts#16
getdkan/csv-parser Has no dependencies on getdkan/contracts after PR. GetDKAN/csv-parser#20
getdkan/procrastinator Uses StorerInterface and RetrieverInterface. We need to figure out where to put storage-related interfaces in round 2 of this refactor. GetDKAN/procrastinator#23
getdkan/file-fetcher Uses Contracts\Mock\Storage\Memory for testing. Refactor in round 2. GetDKAN/file-fetcher#39
getdkan/harvest Uses Contracts\Mock\Storage\Memory for testing. Refactor in round 2. GetDKAN/harvest#20

@paul-m paul-m changed the title Remove dependency on getdkan/contracts Reduce dependency on getdkan/contracts (part 1) May 13, 2024
@paul-m paul-m mentioned this pull request Sep 30, 2024
3 tasks
@paul-m paul-m added the dependencies Pull requests that update a dependency file label Sep 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove dependencies on contracts
1 participant